// // 多个源对象的属性复制到一个目标对象当中
// const source1 = {
//   a: 123,
//   b: 234
// }

// const source2 = {
//   a: 789,
//   c: 678
// }

// const target1 = {
//   a: 345,
//   c: 567
// }
// const target2 = {
//   a: 345,
//   c: 567
// }
// const result1 = Object.assign(target1, source1)
// console.log(target1)
// console.log(target1 === result1)
// // { a: 123, c: 567, b: 234 }
// // true
// // 返回值就是target1
// const result2 = Object.assign(target2, source1, source2)
// console.log(target2)
// // { a: 789, c: 678, b: 234 }
// // ------------------------------------------------
// // 用来复制对象
// func = (obj) => {
//   obj.name = 'func obj'
//   console.log(obj)
// }
// const obj1 = { name: 'global obj' }

// func(obj1)
// console.log(obj1)
// // { name: 'func obj' }
// // { name: 'func obj' }
// // ------------------------------------------------
// function func(obj) {
//   obj.name = 'func obj'
//   console.log(obj)
// }
// const obj1 = { name: 'global obj' }

// func(obj1)
// console.log(obj1)
// // { name: 'func obj' }
// // { name: 'func obj' }
// // 在函数内部修改了属性, 原来对象上的相同的属性就不起作用了!
// // 即使是在函数外部再去查看也变成了修改之后的样子了!
// // ------------------------------------------------
// // 只修改在函数之内的
// // 需要新建一个对向然后复制原来的对象
// function func(obj) {
//   const newObj = Object.assign({}, obj)
//   newObj.name = 'func newObj'
//   console.log(newObj)
// }
// const obj1 = { name: 'global obj1' }

// func(obj1)
// console.log(obj1)
// // { name: 'func newObj' }
// // { name: 'global obj1' }
// // 为options设置默认值
